package leave.model;

import java.util.*;
import java.sql.Time;

public interface Employee {

	public abstract int getEmployeeID();

	public abstract void setEmployeeID(int employeeID);

	public abstract String getName();

	public abstract void setName(String name);

	public abstract String getPassword();

	public abstract void setPassword(String password);

	public abstract String getRole();

	public abstract void setRole(String role);

	public abstract String getEmail();

	public abstract void setEmail(String email);

	public abstract Employee getReportsTo();

	public abstract void setReportsTo(Employee reportsTo);

	public abstract String getRank();

	public abstract void setRank(String rank);

	public abstract HashMap<Integer, Float> getCompensatableDays();

	public abstract void setCompensatableDays(HashMap<Integer, Float> comDays);

	public abstract void setLeaveTakenID(ArrayList<Integer> leavetaken);

	public abstract ArrayList<Integer> getLeaveTakenID();

	public abstract void setCompensationsClaimed(
			ArrayList<Integer> compensationsClaimed);

	public abstract ArrayList<Integer> getCompensationsClaimed();

	// User added methods.

	void applyLeave(String leaveType, Date startDate, Date endDate,
			String employeeComment, String workDissemination,
			String contactDetails);

	void claimCompensationLeave(Date dateOfOvertime, Time startTime,
			Time endTime);
}